package org.seamon.management.pojo.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 系统操作日志表
 * @TableName sys_log
 */
@TableName(value ="sys_log")
@Data
public class Log {
    /**
     *
     */
    @TableId
    private Long id;

    /**
     * 模块标题
     */
    private String title;

    /**
     * 业务类型 0:其他 1:新增 2:修改 3:删除
     */
    private Integer businessType;

    /**
     * 方法名称
     */
    private String methodName;

    /**
     * 请求参数
     */
    private String params;

    /**
     * 请求方法
     */
    private String requestMethod;

    /**
     * 请求地址
     */
    private String requestUrl;

    /**
     * 用户代理（浏览器、设备信息）
     */
    private String userAgent;

    /**
     * 操作人员
     */
    @TableField(fill = FieldFill.INSERT)
    private String operator;

    /**
     * 部门名称
     */
    private String deptName;

    /**
     * 主机IP
     */
    private String ip;

    /**
     * 执行状态 0:成功 1:失败
     */
    private Integer status;

    /**
     * 错误信息
     */
    private String errorInfo;

    /**
     *
     */
    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
}
